/*
语法百题 解题报告：
 http://git.oschina.net/et0662/sznoi-grammar/ 
*/

/* RF 不作是甚么啊*/
/*
#include<stdio.h>
#include<malloc.h>
typedef struct _DATA
{
	int data;
	struct _DATA * next;
}DATA;

int main(void)
{
	DATA *head=NULL,*tail=NULL, *temp, *t;
	int n,m,i;
	scanf("%d %d",&n,&m);


	if(n==1)
	{
		printf("%d\n",n);
		return 0;
	}

	if(m==1)
	{
		printf("%d\n",n);
		return 0;
	}
	head=(DATA *)malloc(sizeof(DATA));
	head->next=NULL;
	for(i=1;i<=n;i++)
	{
		temp=(DATA *)malloc(sizeof(DATA));
		temp->data=i;
		temp->next=NULL;
		if(head->next==NULL)
			head->next=temp;
		if(tail!=NULL)
			tail->next=temp;
		tail=temp;
	}
	tail->next=head->next;
	i=0;
	temp=head;
	while(temp->next!=temp)
	{
		i++;
		if(i==m)
		{
			t=temp->next;
			temp->next=temp->next->next;
			free(t);
			i=0;
		}
		else
		{
			temp=temp->next;
		}
	}
	printf("%d\n",temp->data);
	free(head);
	return 0;
}
*/

/* 不能用 malloc我也是醉了 */
#include<stdio.h>

int main(void)
{
	int n,m,i,p,j, a[10000];
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
		a[i]=1;
	i=0;
	p=1;
	j=n;
	while(j!=1)
	{
		if(a[p])
		{
			i++;
			if(i==m)
			{
				a[p]=0;
				i=0;
				j--;
			}
		}
		p++;
		if(p>n)
			p=1;
	}
	for(i=1;i<=n;i++)
		if(a[i])
	{
		printf("%d\n",i);
		break;
	}
	return 0;
}
